1.model目录下新建User.go文件
init()里面初始化设置字段中文提示，struct里面通过alias设置字段中文
package models

import (
	"github.com/astaxie/beego/validation"
)

func init()  {
	var MessageTmpls = map[string]string{
		"Required":     "不能为空",
		"Min":          "最小值 为 %d",
		"Max":          "最大值 为 %d",
		"Range":        "范围 为 %d 到 %d",
		"MinSize":      "最短长度 为 %d",
		"MaxSize":      "最大长度 为 %d",
		"Length":       "长度必须 为 %d",
		"Alpha":        "必须是有效的字母",
		"Numeric":      "必须是有效的数字",
		"AlphaNumeric": "必须是有效的字母或数字",
		"Match":        "必须匹配 %s",
		"NoMatch":      "必须不匹配 %s",
		"AlphaDash":    "必须是有效的字母、数字或连接符号(-_)",
		"Email":        "必须是有效的电子邮件地址",
		"IP":           "必须是有效的IP地址",
		"Base64":       "必须是有效的base64字符",
		"Mobile":       "必须是有效的手机号码",
		"Tel":          "必须是有效的电话号码",
		"Phone":        "必须是有效的电话或移动电话号码",
		"ZipCode":      "必须是有效的邮政编码",
	}
	validation.SetDefaultMessage(MessageTmpls)
}


type User struct {
	Id     int
	Name   string `alias:"姓名"    valid:"Required;Match(/^Bee.*/)"`
	Age    int    `alias:"年龄"    valid:"Range(1, 140)"`
	Email  string `alias:"邮箱"    valid:"Email; MaxSize(100)"`
	Mobile string `alias:"手机号码" valid:"Mobile"`
	IP     string `alias:"Ip地址"  valid:"IP"`
}

2.控制器调用验证
func (c *Index) Get() {
	valid := validation.Validation{}
	u := models.User{Name: "Beego", Age: 2, Email: "dev@beego.me"}
	b, err := valid.Valid(&u)
	if !b {
		//返回首个错误信息
		filed, _ := reflect.TypeOf(models.User{}).FieldByName(valid.Errors[0].Field)//找出字段
		var alias = filed.Tag.Get("alias")//找出字段中文名
		log.Println(alias + valid.Errors[0].String())

		//返回所有错误信息
		//for _, err := range valid.Errors {
		//	//获取验证的字段提示信息的别名
		//	filed, _ := reflect.TypeOf(models.User{}).FieldByName(err.Field)
		//	var alias = filed.Tag.Get("alias")
		//	log.Println(alias+err.Message)
		//}
	}
}
